/*
 * @ : Copyright (c) 2021 Phytium Information Technology, Inc. 
 *  
 * SPDX-License-Identifier: Apache-2.0.
 * 
 * @Date: 2021-06-21 14:10:59
 * @LastEditTime: 2021-08-24 18:43:39
 * @Description:  This files is for 
 * 
 * @Modify History: 
 *  Ver   Who        Date         Changes
 * ----- ------     --------    --------------------------------------
 */

#ifndef BSP_ARCH_ARMV8_AARCH32_GENERIC_TIMER_H
#define BSP_ARCH_ARMV8_AARCH32_GENERIC_TIMER_H

#ifdef __cplusplus
extern "C"
{
#endif

#include "ft_types.h"

    typedef void (* GenericTimerTickHandler)();
    
    void GenericTimerStart(void);
    void GenericTimerStop(void);
    void GenericTimerInterruptEnable(void);
    void GenericTimerInterruptDisable(void);
    u32 GenericTimerFrequecy(void);
    u64 GenericTimerRead(void);
    void GenericTimerCompare(u32 interval);
    void GenericTimerSetupSystick(u32 tickRateHz, GenericTimerTickHandler tickHandler, u32 intrPrority);
    u32 GenericGetTick(void);

#ifdef __cplusplus
}
#endif

#endif // !